package com.ly.heart.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ly.heart.domain.ContractSaleEntity;
import com.ly.heart.domain.vo.ContractOrderMaterialDetailVo;
import org.apache.ibatis.annotations.Mapper;

/**
 * 光伏材料/逆变器/组件销售合同Mapper接口
 *
 * @author cxl
 * @date 2024-05-16
 */
@Mapper
public interface ContractSaleMapper extends BaseMapper<ContractSaleEntity> {
    /**
     * 查询光伏材料/逆变器/组件销售合同
     *
     * @param id 光伏材料/逆变器/组件销售合同主键
     * @return 光伏材料/逆变器/组件销售合同
     */
    ContractSaleEntity selectContractSaleEntityById ( String id );

    /**
     * 查询光伏材料/逆变器/组件销售合同列表
     *
     * @param contractSaleEntity 光伏材料/逆变器/组件销售合同
     * @return 光伏材料/逆变器/组件销售合同集合
     */
    List<ContractSaleEntity> selectContractSaleEntityList ( ContractSaleEntity contractSaleEntity );

    Integer queryCount ( ContractSaleEntity contractSaleEntity );

    /**
     * 新增光伏材料/逆变器/组件销售合同
     *
     * @param contractSaleEntity 光伏材料/逆变器/组件销售合同
     * @return 结果
     */
    int insertContractSaleEntity ( ContractSaleEntity contractSaleEntity );

    /**
     * 修改光伏材料/逆变器/组件销售合同
     *
     * @param contractSaleEntity 光伏材料/逆变器/组件销售合同
     * @return 结果
     */
    int updateContractSaleEntity ( ContractSaleEntity contractSaleEntity );

    /**
     * 删除光伏材料/逆变器/组件销售合同
     *
     * @param id 光伏材料/逆变器/组件销售合同主键
     * @return 结果
     */
    int deleteContractSaleEntityById ( String id );

    /**
     * 通过选单查询销售合同的物料明细列表
     *
     * @param type
     * @return
     */
    List<ContractOrderMaterialDetailVo> queryMaterial ( ContractSaleEntity contractSaleEntity );

    Integer queryCountMenu ( ContractSaleEntity contractSaleEntity );

    /**
     * 批量删除光伏材料/逆变器/组件销售合同
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteContractSaleEntityByIds ( String[] ids );
}
